﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Input;

namespace _01_登录界面.Common
{
	public class CommandBase : ICommand
	{
		public event EventHandler? CanExecuteChanged;

		public bool CanExecute(object? parameter)
		{
			return DoCanExcute?.Invoke(parameter)==true;
		}

		public void Execute(object parameter)
		{
			DoExcute?.Invoke(parameter);

		}

		// Action也是一个委托类型，它可以接受最多16个输入参数，但不返回任何结果。Action委托没有返回值
		public Action<object> DoExcute { get; set; }

		//Func是一个泛型委托类型，它可以接受最多16个输入参数，并返回一个结果。Func委托的最后一个泛型参数表示返回值的类型
		public Func<object,bool> DoCanExcute { get; set; }	
	}
}
